package telas.comum;

import java.awt.Frame;
import java.awt.Rectangle;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.BorderFactory;
import javax.swing.border.EtchedBorder;
import telas.componentes.Botao;
import telas.componentes.Painel;
import business.sistema.ExceptionSistema;
import business.sistema.IObjetoSistema;
import java.awt.ComponentOrientation;
import java.awt.event.KeyEvent;

public class TelaDialogoCadastroItens extends TelaDialogo 
{
	private static final long serialVersionUID = -5928786581962736578L;
	private Painel pnlCantentPane;
	private Painel pnlButoes;
	private Painel pnlBotoesInternos;
	private Botao btnSalvar;
	private Botao btnFechar;
	private IObjetoSistema objetoDados;
	private boolean novo = false;
	private IObjetoSistema objetoSelecao; 
	
	public TelaDialogoCadastroItens() throws Exception
	{
		super();
		initialize();
	}
	
	public TelaDialogoCadastroItens(Frame parent, boolean modal) throws Exception
	{
		super(parent, modal);
		initialize();
	}
	
	/**
	 * Construtor recebeno apenas o objeto que irá ser feito as alterações ou inclusão
	 * e o atributo para setar se o objeto é novo ou é uma nova inclusão.
	 * 
	 * @param objeto
	 * @param novo
	 */
	public TelaDialogoCadastroItens(IObjetoSistema objeto, boolean novo) throws Exception
	{
		super();
		this.objetoDados = objeto;
		this.novo = novo;
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 */
	public void initialize() throws Exception
	{
		this.setModal(true);
		this.setBounds(new Rectangle(200, 200, 436, 272));
		this.setContentPane(getPnlCantentPane());

	}


	/**
	 * This method initializes pnlCantentPane	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	public Painel getPnlCantentPane() 
	{
		if (pnlCantentPane == null) 
		{
			pnlCantentPane = new Painel();
			pnlCantentPane.setLayout(new BorderLayout());
			pnlCantentPane.add(getPnlButoes(), BorderLayout.SOUTH);
		}
		
		return pnlCantentPane;
	}


	/**
	 * This method initializes pnlButoes	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private Painel getPnlButoes() 
	{
		if (pnlButoes == null) 
		{
			pnlButoes = new Painel();
			pnlButoes.setLayout(new BorderLayout());
			pnlButoes.setPreferredSize(new Dimension(0, 28));
			pnlButoes.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED));
			pnlButoes.add(getPnlBotoesInternos(), BorderLayout.EAST);
		}
		
		return pnlButoes;
	}


	/**
	 * This method initializes pnlBotoesInternos	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private Painel getPnlBotoesInternos() 
	{
		if (pnlBotoesInternos == null) 
		{
			pnlBotoesInternos = new Painel();
			pnlBotoesInternos.setLayout(null);
			pnlBotoesInternos.setPreferredSize(new Dimension(200, 24));
			pnlBotoesInternos.add(getBtnSalvar(), null);
			pnlBotoesInternos.add(getBtnFechar(), null);
		}
		
		return pnlBotoesInternos;
	}


	/**
	 * This method initializes btnSalvar	
	 * 	
	 * @return javax.swing.JButton	
	 */
	public Botao getBtnSalvar() 
	{
		if (btnSalvar == null) 
		{
			btnSalvar = new Botao();
			btnSalvar.setBounds(new Rectangle(2, 0, 98, 23));
			btnSalvar.setMnemonic(KeyEvent.VK_F5);
			btnSalvar.setText("Salvar (F5)");
			
			btnSalvar.addActionListener
			(
				new java.awt.event.ActionListener() 
				{
					public void actionPerformed(java.awt.event.ActionEvent e) 
					{
						try
						{
							salvar();
						}
						catch(Exception ex)
						{
							new ExceptionSistema(ex);
						}
					}
				}
			);
		}
		
		return btnSalvar;
	}


	/**
	 * This method initializes btnFechar	
	 * 	
	 * @return javax.swing.JButton	
	 */
	public Botao getBtnFechar() 
	{
		if (btnFechar == null) 
		{
			btnFechar = new Botao();
			btnFechar.setBounds(new Rectangle(102, 0, 97, 23));
			btnFechar.setText("Fechar (F6)");
			btnFechar.setMnemonic(KeyEvent.VK_F6);
			btnFechar.setComponentOrientation(ComponentOrientation.UNKNOWN);
			
			btnFechar.addActionListener
			(
				new java.awt.event.ActionListener() 
				{
					public void actionPerformed(java.awt.event.ActionEvent e) 
					{
						try
						{
							fecharTela();
						}
						catch(Exception ex)
						{
							new ExceptionSistema(ex);
						}
					}
				}
			);
		}
		
		return btnFechar;
	}

	public IObjetoSistema getObjetoDados() 
	{
		return objetoDados;
	}

	public void setObjetoDados(IObjetoSistema objetoDados) 
	{
		this.objetoDados = objetoDados;
	}
	
	public boolean isNovo() 
	{
		return novo;
	}

	public void setNovo(boolean novo) 
	{
		this.novo = novo;
	}
	
	public IObjetoSistema getObjetoSelecao() 
	{
		return objetoSelecao;
	}

	public void setObjetoSelecao(IObjetoSistema objetoSelecao) 
	{
		this.objetoSelecao = objetoSelecao;
	}
	
	protected void fecharTela() throws Exception
	{
		if(!isNovo())
		{
			getObjetoDados().desfazerModificacao();
		}
		
		dispose();
	}
	
	public void salvar() throws Exception {}
	public void preencheFormulario()throws Exception {}
	public void limpaCadastro() throws Exception{}
}
